package fafmessenger_server.entity;

import java.sql.Timestamp;

public class Message {

	private int id;					// Het id om het bericht mee te indentificeren.
	private Timestamp timestamp;	// Het moment waarop het bericht verwerkt is door de server.
	private String body;			// De tekst van het bericht.
	private String fromMobilenumber;
	private String toMobilenumber;
	
	/**
	 * Maak een nieuw bericht aan.
	 * 
	 * @param id Integer Het id van het bericht waarmee het geidentificeerd kan worden.
	 * @param timestamp Timestamp Het moment waarop het bericht verwerkt is door de server.
	 * @param body String De tekst/inhoud van het bericht.
	 * @param fromMobilenumber String
	 * @param toMobilenumber String
	 */
	public Message(int id, Timestamp timestamp, String body, String fromMobilenumber, String toMobilenumber) {
		this.id = id;
		this.timestamp = timestamp;
		this.body = body;
		this.fromMobilenumber = fromMobilenumber;
		this.toMobilenumber = toMobilenumber;
	}
	
	/**
	 * Maak een nieuw bericht aan zonder een ID.
	 * 
	 * @param timestamp Timestamp Het moment waarop het bericht verwerkt is door de server.
	 * @param body String De tekst/inhoud van het bericht.
	 * @param fromMobilenumber String
	 * @param toMobilenumber String
	 */
	public Message (Timestamp timestamp, String body, String fromMobilenumber, String toMobilenumber) {
		id = 0;
		this.timestamp = timestamp;
		this.body = body;
		this.fromMobilenumber = fromMobilenumber;
		this.toMobilenumber = toMobilenumber;
	}
	
	/**
	 * Geeft het ID terug van dit bericht.
	 * 
	 * @return Integer Het id van dit bericht.
	 */
	public int getID() {
		return id;
	}
	
	/**
	 * Geeft de timestamp terug die hoort bij dit bericht.
	 * 
	 * @return Timestamp De tijd waarop dit bericht is verwerkt door de server.
	 */
	public Timestamp getTimestamp() {
		return timestamp;
	}
	
	/**
	 * Geeft de tekst/inhoud van het bericht terug.
	 * 
	 * @return String Tekst/inhoud van het bericht
	 */
	public String getBody() {
		return body;
	}
	
	public String getFromMobilenumber() {
		return fromMobilenumber;
	}
	
	public String getToMobilenumber() {
		return toMobilenumber;
	}
	
	/**
	 * Stelt de timestamp van het bericht in.
	 * 
	 * @param value Timestamp Het moment waarop het bericht door de server verwerkt is.
	 */
	public void setTimestamp(Timestamp value) {
		synchronized (this) {
			timestamp = value;
		}
	}
	
	/**
	 * Stelt de tekst/inhoud van dit bericht in.
	 * 
	 * @param value String De tekst/inhoud van het bericht.
	 */
	public void setBody(String value) {
		synchronized (this) {
			body = value;
		}
	}
}
